package example006;

import java.lang.reflect.InvocationTargetException;
import java.util.Date;
import java.util.List;

import org.apache.commons.lang3.StringUtils;

import com.lsy.poi.row.RowMapper;

//import org.apache.commons.beanutils.BeanUtils;
//import org.apache.commons.beanutils.PropertyUtils;

//TODO：MyRowMapper 可以 跳空行
//所谓的 调控行是 在 注入 List 时，不加入 这一行
public class FooRowMapper extends RowMapper<Foo> {

	public FooRowMapper(String[] propertyNames, Class<Foo> clazz) {
		super(propertyNames, clazz);
	}
	
	@Override
	public void mapRow(List<Foo> eleList, Object[] cellValues) 	throws InstantiationException, IllegalAccessException, InvocationTargetException, NoSuchMethodException {
		
		Foo ele = setProperties(cellValues);
		
		if(StringUtils.isBlank(ele.getAaa())) { //如果 aaa 为 空值，则 认为 这是一个 无效的 row，不将他 落地到 javaBean 上
			
		}else {
			eleList.add(ele);
		}
		
		/** 其实 应该 在 setProperties(cellValues) 之前就进行 判断的
		if(cellValues[4] instanceof String && StringUtils.isBlank(String.valueOf(cellValues[4]))) {
			
		}else {
			eleList.add(ele);
		}
		*/
		
	}
	@Override
	protected Foo setProperties(Object[] cellValues) 
			throws InstantiationException, IllegalAccessException, InvocationTargetException, NoSuchMethodException {
		
		Foo foo = super.setProperties(cellValues);
		
		foo.setLocation(foo.getCountry() + "_" + foo.getProvince());
		foo.setCreateUser("SwaggyLum");
		foo.setCreateTime(new Date());
		
		return foo;
	}

//	public void mapRow(List<T> eleList, Object[] cellValues) throws InstantiationException, IllegalAccessException, InvocationTargetException, NoSuchMethodException {
//		Object ele = setProperties(cellValues);
//		
//		//不收集 空行
////		if()
//		
//		eleList.add(ele);
//	}


}
